package org.java.user.repositiry;

import org.java.user.api.damain.Role;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

// 使用Spring Data JPA的时候，接口不需要实现。
// 只需要继承JpaRepository，并且使用@Repository注解即可。
// <Role, String> 前者表示要操作哪个实体类型（哪个表），后者表示实体类型的主键数据类型。
@Repository
public interface RoleRepository extends JpaRepository<Role, String> {
    // 返回值类型非常智能：如果要返回多个值，使用List；单个值则使用具体类型或者使用Optional进行包装。
    Optional<Role> findByRoleKey(String key);

    List<Role> findByBuiltInIsTrueAndFixedIsTrue();

    List<Role> findByFixedIsTrue();
}
